/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Controle;

import Modelo.Cliente_has_Seguro;
import Modelo.Funcionario;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashSet;
import javax.swing.text.MaskFormatter;

/**
 *
 * @author Silvio
 */
public class Uteis {

    //metodo para transformar uma string em float
   /*public static float transformaFloat(String numero){
       float valor = 0;
        char n[] = numero.toCharArray();
        numero ="";
        for(int i=0;i<n.length;i++){
            if(n[i]==',')
                numero+=".";
            numero+=n[i];
        }
        try{
            valor = Float.parseFloat(numero);
        }catch(Exception e){
            return 0;
        }
        return valor;
    }*/
    //metodo para transformar uma String R$ 1.000,50 ou 0,50% em float
    
    public static float transformaFloat(String numero){
        float valor = 0;
        // retirando os caracteres especiais
         numero = numero.replaceAll("R$", "");
         numero = numero.replaceAll("%","");
         
         // manusear o resto da string 1.000,50 ou 0,50
         char [] n = numero.toCharArray();
         String temp="";
         if(numero.length()>=4){
             System.out.println("CHAR PROCURADO"+numero.charAt(numero.length()-3));
             if(numero.charAt(numero.length()-3)==','){
                 for(int i=0; i<n.length; i++){
                     if(n[i]!='.')
                         temp+=n[i];
                 }
             }else
                 temp = String.copyValueOf(n);
        }else
            temp = String.copyValueOf(n);
         temp = temp.replaceAll(",", ".");
        try{
            valor = Float.parseFloat(temp);
        }catch(Exception e){
            return 0;
        }
        System.out.println(valor);
        return valor;
    }
   //metodo para transformar um int em uma string
    public static int transformaInt(String numero){
        int valor = 0;
        char n[] = numero.toCharArray();
        try{
            valor = Integer.parseInt(numero);
        }catch(Exception e){
            return 0;
        }
        return valor;
    }

    //metodo para obter a data corrente do sistema
    public static String DataCorrente(){
		GregorianCalendar DATE = new GregorianCalendar();
		int dia = DATE.get(Calendar.DATE);
		int mes = DATE.get(Calendar.MONTH)+1;
		int ano = DATE.get(Calendar.YEAR);
                String data = String.format("%04d/%02d/%02d",ano,mes,dia);
                return data;
	}

   

    public static String manipulaCPF(String mudar){
        char [] atual = mudar.toCharArray();
        String corrente="";
        for(int i=0;i<atual.length;i++){
            if(atual[i]!='.' && atual[i]!='-')
                corrente +=atual[i];
        }
        return corrente;
    }
    public static String manipulaCNPJ(String mudar){
        char [] atual = mudar.toCharArray();
        String corrente="";
        for(int i=0;i<atual.length;i++){
            if(atual[i]!='.' && atual[i]!='-' && atual[i]!='/')
                corrente +=atual[i];
        }
        return corrente;
    }

    public static boolean verificaSenha(String senha, String confirmarSenha){
        if(senha.equals(confirmarSenha)){
            return true;
        }
        return false;
    }

    public static String[] VoltaRG(String rg){
        String []pronto = new String[3];
        int j=0;
        char [] temp = rg.toCharArray();
        String parte="";
        for(int i=0;i<temp.length;i++){
            parte +=temp[i];
            if(temp[i]=='/'){
               pronto[j]=parte.substring(0, parte.length()-1);
               parte ="";
               j++;
            }
        }
        return pronto;
    }

    /*
     * METODO PARA CRIAR UMA MASCARA PARA INTERFACES
     */
    public static MaskFormatter Mascara(String Mascara){

           MaskFormatter F_Mascara = new MaskFormatter();
           try{
               F_Mascara.setMask(Mascara); //Atribui a mascara
               F_Mascara.setPlaceholderCharacter(' '); //Caracter para preencimento
           }
           catch (Exception excecao) {
           excecao.printStackTrace();
           }
           return F_Mascara;
        }
    public static String Num(float num){
         DecimalFormat df = new DecimalFormat();
        df.applyPattern("00.00;00,00");
        Float valor = new Float(num);
        return df.format(valor);
    }
    public static String Moeda(float valor) {
        return NumberFormat.getCurrencyInstance().format(valor);
    }

    public static String NumInt(int num){
         return String.format("%d", num);
    }

    public static boolean soContemNumeros(String texto) {
      if(texto == null || texto.equals(""))
         return false;
      for (char letra : texto.toCharArray())
         if((letra < '0' || letra > '9') && (letra!='.' && letra!=','))
            return false;
      return true;

   }
    public static String modSTRC(String atual){
        char array[] = atual.toCharArray();
        String nova="";
        for(int i=0;i<array.length;i++){
            if(i==1)
                nova += " ";
            if(array[i]!=' '){
                nova += array[i];
            }

        }
        nova = nova.toUpperCase();
        return nova;
    }

    public static String[] soPodeHaverUm(String[][] nomes) {

    HashSet<String> hsNomes = new HashSet<String>();

    for(int i=0;i<nomes.length;i++) {
        hsNomes.add(nomes[i][0]);
    }

    int i = 0;

    String[] novosNomes = new String[hsNomes.size()];

    for(String nome : hsNomes) {
        novosNomes[i++] = nome;
    }

    return novosNomes;
    }
    public static String periodo(String data){
        if(data.substring(3, 5).equals("01"))
            return "JANEIRO"+data.substring(5, data.length());
        if(data.substring(3, 5).equals("02"))
            return "FEVEREIRO"+data.substring(5, data.length());
        if(data.substring(3, 5).equals("03"))
            return "MARÇO"+data.substring(5, data.length());
        if(data.substring(3, 5).equals("04"))
            return "ABRIL"+data.substring(5, data.length());
        if(data.substring(3, 5).equals("05"))
            return "MAIO"+data.substring(5, data.length());
        if(data.substring(3, 5).equals("06"))
            return "JUNHO"+data.substring(5, data.length());
        if(data.substring(3, 5).equals("07"))
            return "JULHO"+data.substring(5, data.length());
        if(data.substring(3, 5).equals("08"))
            return "AGOSTO"+data.substring(5, data.length());
        if(data.substring(3, 5).equals("09"))
            return "SETEMBRO"+data.substring(5, data.length());
        if(data.substring(3, 5).equals("10"))
            return "OUTUBRO"+data.substring(5, data.length());
        if(data.substring(3, 5).equals("11"))
            return "NOVEMBRO"+data.substring(5, data.length());
        else
            return "DEZEMBRO"+data.substring(5, data.length());
    }

    public static ArrayList <Cliente_has_Seguro> comparaSeguro(ArrayList <Cliente_has_Seguro> cli, Funcionario func){
        int contador = 0;
        ArrayList <Cliente_has_Seguro> cliSeg = new ArrayList<Cliente_has_Seguro>();
        if(cli.isEmpty()){
            return null;
        } else{
            while(contador < cli.size()){
                if(cli.get(contador).getSeg().getFunc().getCPF().equals(func.getCPF())){
                    cliSeg.add(cli.get(contador));
                }
                contador++;
            }
            return cliSeg;
        }
    }
    public static String totalDia(String sobraDia,String totalAntigos){
        float temp=0,valor1,valor2;
        valor1 = transformaFloat(sobraDia);
        valor2 = transformaFloat(totalAntigos);
        temp = valor1+valor2;
        return Num(temp);
    }
    public static String removePonto(String remover){
        char temp[];
        temp = remover.toCharArray();
        remover ="";
        for(int i=0;i<temp.length;i++)
            if(temp[i]!='.')
            remover+=temp[i];
        return remover;
    }
    public static String Maiuscula(String original) {
        original = original.toLowerCase();
        String mais="",maiuscula2="",tudo="";

        String posicao=""+original.charAt(0);//pega a primeira letra que sera maiuscula

        String pos=posicao.toUpperCase();    //transforma em maiuscula

        int tamanho=original.length();//ve o tamanho da frase
        for(int i=1;i<original.length();i++){  //coloca o for de acordo com o tamanho
            mais=mais+original.charAt(i); //acrescenta as letras

                   if( original.charAt(i) == ' ' && original.charAt(original.length()-1)!=' '){  //se houver um espaço a próxima vai ser transformada em maisucula.
                       String maiuscula=""+original.charAt(i+1);//pega a próxima apos o espaço
                       maiuscula2=maiuscula.toUpperCase();       //transforma em maiuscula.
                       mais=mais+maiuscula2;//acrescenta a maiuscula a palavra completa, que se chama mais
                       i=i+1; //soma um, pois uma letra minuscula foi substituida e ja foi acrescentada
                   }
        } tudo=pos+mais;
    //  System.out.println("tudo:"+tudo);
      return tudo;
    }
}
